/*
 * Trait.h
 *
 *  Created on: 2011-8-2
 *      Author:
 */

#ifndef TRAIT_H_
#define TRAIT_H_
#include <vector>
#include "type.h"
#include "SwfObject.h"
#include "AbcFile.h"
namespace swfstream {
class AbcFile;
class Trait: public SwfObject {
public:
	Trait();
	virtual ~Trait();
	uint32 name;
	uint8 kind;
	uint32 metadataCount;
	std::vector<uint32> metadata;
	//0 slot
	uint32 slotId;
	uint32 typeName;
	uint32 vindex;
	uint8 vkind;
	//1 method
	uint32 dispId;
	uint32 method;
	//4
	uint32 classi;
	//
	virtual std::string toString(AbcFile* abcFile);
	virtual TiXmlElement* toTiXmlElement();
};

} /* namespace swfstream */
#endif /* TRAIT_H_ */
